package com.cn.service.impl;

import com.cn.mapper.ShopCartMapper;
import com.cn.pojo.ShopCart;
import com.cn.service.ProductService;
import com.cn.service.ShopCartService;
import com.cn.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class ShopCartServiceImpl implements ShopCartService {
    @Autowired
    private ShopCartMapper shopCartMapper;
    @Autowired
    private UserService userService;
    @Autowired
    private ProductService productService;
    /**
     * 添加商品到购物车
     * @param username 用户名
     * @param productName 商品名
     * @param count 购买数量
     * @return 1表示成功，0表示失败
     */
    @Override
    public int addProductToShopCart(String username, String productName, int count) {
        //封装为购物车对象
        //查询用户id
        int userId = userService.queryUserIdByName(username);
        //查询商品id
        int productId = productService.queryProductIdByName(productName);
        ShopCart shopCart = new ShopCart(null, userId, productId, count);
        return shopCartMapper.addProductToShopCart(shopCart);
    }

    /**
     * 更新购物车中商品的数量
     * @param username 用户名
     * @param productName 商品名
     * @param newCount 新的数量
     * @return 1表示成功，0表示失败
     */
    @Override
    public int updateCartItemCount(String username, String productName, int newCount) {
        //查询用户id
        int userId = userService.queryUserIdByName(username);
        //查询商品id
        int productId = productService.queryProductIdByName(productName);
        return shopCartMapper.updateCartItemCount(userId, productId, newCount);
    }
    /**
     * 删除购物车中的商品
     * @param username 用户名
     * @param productName 商品名
     * @return 1表示成功，0表示失败
     */
    @Override
    public int deleteCartItem(String username, String productName) {
        //查询用户id
        int userId = userService.queryUserIdByName(username);
        //查询商品id
        int productId = productService.queryProductIdByName(productName);
        //删除购物车中的商品
        int result = shopCartMapper.deleteCartItem(userId, productId);
        if (result > 0) {
            return 1;
        }
        return 0;
    }

}
